home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / programer2 / pari2 / pari / other / Changes < prev    next >
Text File  |  1991-12-09  |  19KB  |  343 lines

  1. (Modifications de 1.31 a 1.35 dans le fichier ~/PARISOURCES/Changes1.31-1.35)
  2. -----------------------------------------------------------------------------
  3. Modifications a la version 1.35.
  4.  
  5. Code: B: bug, M: modification, N: nouveau programme, D: erreur de doc.
  6. 1 a 3: de peu important a tres important
  7.  
  8. 1) [N] Ecrit et installe suppl() (supplement dans GP) et image().
  9. 2) [N] Ecrit et installe la factorisation dans les corps finis factmod9()
  10.    (factfq() dans GP).
  11. 3) [B1] alglin1.c: modifier les ker() pour que quand le noyau est nul le
  12.    resultat soit vide.
  13. 4) [B1] es.c: dans tous les programmes d'impression, accepter les matrices
  14.    a 0 colonnes.
  15. 5) [N] alglin1.c: ecrit un nouvel image(), et renomme l'ancien
  16.    image2().
  17. 6) [B1] es.c: comme 4, pour les vecteurs.
  18. 7) [B3] gen1.c: gmul() changer (dans ty>=10) le if() en
  19.     if(((vx>vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(tx<10))||((ty>=17)&&(tx<17)))
  20.     gadd() idem changer le if() en
  21.     if(((vx>vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(tx<10)))
  22.     gdiv() idem changer le if() en
  23.     if(((vx<vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(ty<10))||((tx>=17)&&(ty<17)))
  24. 8) [M1] mis a jour testin et testout
  25.  
  26. ----------------------- Version 1.35.01 --------------------------
  27.  
  28. 9) [B2] polarit2.c, ggcd() reecrit completement le type 9,9, en analogie avec
  29.    le type 3, ainsi que type 9,10 en analogie avec 3,1.
  30. 10) [N] alglin1.c: ecrit et installe inverseimage().
  31. 11) [B2] polarit1.c: rootmod() et factmod(), modifie les appels a ggcd pour les
  32.    rendre compatible avec la correction 9).
  33. 12) [M1] mp.s etc...: modifie le code pour ne plus du tout utiliser a5, par
  34.    compatibilite avec le Mac.
  35. 13) [N] bibli1.c: ecrit et installe cyclo().
  36. 14) [N] bibli1.c: ecrit et installe vecsort().
  37. 15) [N] anal.c, gp.c, init.c: mis globalement infile et echo (transforme en
  38.     pariecho), ainsi qu'un buffer parireadbuffer, alloue dans gp.c. Puis
  39.     ecrit et installe read().
  40. 16) [N] anal.c: installe label() et goto() (honte a moi!), mais goto() ne
  41.     marche pas bien.
  42.  
  43. ------------------------ Version 1.35.02 ----------------------------
  44.  
  45. 17) [B2] gen2.c: dbltor() changer ex=log2(x) en ex=floor(log2(x)).
  46. 18) [B1] bibli1.c: lllgram(), apres n=lx-1 mettre:
  47.     if(n<=1) return gcopy(x).
  48. 19) [M1] arith1.c: bezout1(), (ligne 655) remplacer st=-1 par st= -1.
  49. 20) [M1] arith2.c: initprimes(), changer size=(maxnum+1)/2 en
  50.     size=(maxnum+257)>>1, et 2*(q-s) en (q-s)<<1.
  51. 21) [N] bibli1.c: ecrit et installe polymodrecip() (modreverse dans GP).
  52. 22) [N] bibli1.c: ecrit et installe polred2().
  53. 23) [N] gen3.c: ecrit et installe gtopolyrev() (polyrev dans GP).
  54. 24) [M3], [N] bibli1.c, base.c, etc...: unifie tous les base() en un seul, tous les polred,
  55.     supprime polredreal (un sturm est fait systematiquement), et ajoute smallpolred2() et
  56.     factoredpolred2().
  57. 25) [N] polarit1.c: ecrit et installe rootslong().
  58. 26) [D1] usersch3.tex: indiquer que dans binome(x,y), y doit etre un entier
  59.     du C, et dans anell(e,n) que e doit etre une equation minimale et n un
  60.     entier du C.
  61. 27) [B1] messages.c: changer factpadic en factorpadic.
  62. 28) [B1] alglin1.c: modifier concat() pour accepter des matrices vides.
  63. 29) [M1] elliptic.c: modifie initell en remplacant l'appel de roots()
  64.     par rootslong(), et installe l'ancien comme initell2() 
  65.     provisoirement.
  66.  
  67. ----------------------- Version 1.35.03 --------------------------------
  68.  
  69. 30) [B2] alglin1.c: keri() modifie, le precedent donnait tout simplement des
  70.     resultats faux.
  71. 31) [M1] usersch3.tex: divres, le reste est du signe du dividende, et non positif
  72.     ou nul comme signale.
  73. 32) [B1] gen1.c: gmul(), modifie pour traiter correctement les matrices vides,
  74. 33) [B1] polarit2.c: ggcd(), modifie pour que le pcgd d'un polynome avec l'entier 0
  75.     donne le polynome.
  76. 34) [N] base.c etc... Ecrit et installe galois() et tchirnhausen().
  77. 35) [N] bibli1.c etc... Ecrit et installe genrand() (random dans GP) et permute() 
  78.     (permutation in GP).
  79. 36) [M1] polarit2.c: modifie ggcd() et glcm() pour permettre des arguments
  80.     vecteurs/matrices.
  81. 37) [N] base.c etc... Ecrit et installe initalg().
  82. 38) [M1] gen2.c: normalize() remplace gcmp0 par isexactzero ainsi que les autres occurences
  83.     analogues dans gen1.c.
  84. 39) [B1] gen2.c: ggval() apres la premiere ligne isexactzero... ajouter
  85.     if((tx<9)&&(ty==10)) return 0;
  86. 40) [N] polarit2.c etc... ecrit et installe resultant2() valable pour des types non exacts.
  87. 41) [M1] alglin1.c: det() change la ligne de division pour qu'en cas de polynomes la division
  88.     soit euclidienne.
  89. 42) [M1] base.c: smith() modifie le code apres le if(!c) pour permettre des
  90.     matrices singulieres (b=0), et prendre la valeur absolue a la fin.
  91. 43) [B3] anal.c: lindep2 est de type 23 et pas 21.
  92. 44) [M1] usersch3.tex: galois, legerement modifie la terminologie.
  93. 45) [B3] base.c: corrige une bug dans smith() dans le cas ou p1=-p2.
  94. 46) [M1] pari.menu et usersch3.tex: oublie arg().
  95. 47) [M1] Modifie sumdivk pour qu'il accepte k<0.
  96. 48) [N] Ecrit les fonctions mpfactr() (fact dans gp) et izeta().
  97. 49) [B1] Corrige incgam() pour que ca marche quand a<=0. Ecrit incgam4().
  98. 50) [N] Ecrit et installe lseriesell() (a titre temporaire).
  99. 51) [N] Ecrit cxpolylog() et incorpore a polylog.
  100. 52) [N] Ecrit glngamma(), ggamma() pour les series, et gpolylog().
  101. 53) [B3] es.c: texi() corrige 4 lignes au type 10, identiques a la correction
  102.     correspondante dans bruti.
  103. 54) [N] Ecrit galoisconj().
  104. 55) [M1] Modifie gnorml2() pour accepter tous les types, en particulier matrices.
  105. 56) [B4] !!! gen1.c gadd() type 2+type 4 et 5, code incorrect modifie.
  106. 57) [N] Ecrit et installe matrixqz().
  107. 58) [N] Ecrit et installe centerlift().
  108. 59) [M2] Modifie err() et invmod() pour qu'il imprime les inversesmodulo
  109.     impossibles.
  110. 60) [N] Ecrit(!) et installe matlength(). 
  111.  
  112. ----------------------- Version 1.35.04 --------------------------------
  113.  
  114. 61) [B2] base.c: tchirnhausen() mettre {} apres le if(v).
  115. 62) [M1] reecrit commands() pour tenir compte des noms trop longs.
  116. 63) [M1] supprime encore une fois (!) les random() dans polarit1.c
  117. 64) [M1] ggval et pvaluation ne font plus deborder la pile pari.
  118. 65) [B1] gen3.c: matlength() donnait 1 ligne de trop.
  119. 66) [M1] gencom.h,gp.c,init.c,anal.c: modifie pour que la fonction read()
  120.     de GP soit reentrante.
  121. 67) [M2] anal.c: reecrit et nettement ameliore le programme constante().
  122. 68) [B2] alglin2.c: matrixqz() change pp en p dans la premiere division.
  123. 69) [M1] base.c: hnf() modifie pour accepter des matrices ayant plus de lignes
  124.     que de colonnes. Le resultat n'est maintenant pas toujours une matrice carree.
  125. 70) [N] alglin2.c: ecrit et installe matrixqz2() (algorithme de Dominique).
  126. 71) [N] alglin1.c: ecrit et installe indexrank().
  127. 72) [N] alglin2.c: ecrit et installe matrixqz3().
  128. 73) [B1] alglin1.c et alglin2.c: modifie invmulmat(), caract(), rank() 
  129.     et indexrank() pour accepter des matrices vides.
  130. 74) [N] alglin2.c: ecrit et installe kerint().
  131. 75) [M1] alglin2.c: matrixqz3() corrige une bug et ajoute une LLL-reduction a la fin.
  132. 76) [N] gen2.c, etc...: installe size() et rounderror().
  133. 77) [M1] alglin2.c: sqred1(), sqred2() (donc sqred()) modifies, et ajoute la protection
  134.     contre stack overflow.
  135. 78) [N] bibli1.c, alglin2.c: ecrit sqred3(), et nouvelles versions de lll() et lllgram(),
  136.     les anciennes s'appelant lll1() et lllgram1(). Les nouvelles sont beaucoup plus rapides
  137.     et necessitent moins de place.
  138. 79) [N] elliptic.c: ecrit et installe pointell() (fonction P de Weierstrass et sa derivee).
  139. 80) [M1] alglin1 et 2.c: modifie encore d'autres programmes d'algebre lineaire pour accepter
  140.     les matrices vides.
  141. 81) [M1] trans3.c: modifie polylog() pour qu'il accepte tout argument meme tres grand, et
  142.     gpolylog pour avoir les polylog d'indice negatif.
  143. 82) [M1],[N] trans3.c: renomme polylogd en polylogdold, et modifie pour que polylogd soit
  144.     maintenant le D_m~. De plus, traite les cas particuliers 0 et 1 dans les polylog.
  145. 83) [N] alglin2.c: ecrit et installe intersect().
  146. 84) [B2] alglin2.c: corrige une faute de frappe dans kerint().
  147. 85) [B2] elliptic.c: zell(), inverse le signe de t, change le mode de calcul de t pour
  148.     eviter au maximum les erreurs d'arrondis, ajoute une iteration agm systematiquement
  149.     et traite le cas particulier t=0 (zell() est donc correct et beaucoup plus precis).
  150. 86) [M1] bibli2.c: suminf(), prodinf(), prodinf1(), modifie la condition d'arret pour
  151.     qu'il puisse y avoir des coefficients nuls.
  152. 87) [M1] elliptic.c: matell(), double les coefficients (la precedente definition
  153.     donnait le regulateur divise par 2^r).
  154. 88) [D1] Modifie quelques fautes de frappe du manuel.
  155. 89) [M1] elliptic.c: oncurve(), modifie pour qu'il accepte un resultat approximatif 
  156.     dans le cas de courbes a coefficients inexacts.
  157. 90) [M1] anal.c et messages.c: interverti length et legendre qui n'etaient pas dans
  158.     l'order alphabetique.
  159. 91) [N] gen2.c, bibli1.c, etc...: ecrit et installe lexcmp() (lex dans GP) et lexsort().
  160. 92) [M1] polarit2.c, arith2.c: permis a smallfact() et boundfact() d'avoir des arguments
  161.     rationels, et tries les nombres premiers qui interviennent.
  162. 93) [M1] gen2.c: gpui(), modifie pour un traitement correct des vecteurs.
  163.  
  164. ------------------------- Version 1.35.05 ---------------------------------
  165.  
  166. 94) [M1] elliptic.c: apell() modifie pour accepter des nombres premiers >2^16.
  167. 95) [B2] alglin2.c: hess() etait incorrect. Modifie et en fait simplifie.
  168. 96) [B1] gen2.c: ajoute du code a dbltor() pour s'assurer que le resultat est
  169.     normalise.
  170. 97) [M2] version68k.c: ajoute presque toutes les routines de versionport.c
  171.     pour la correction 96 ci-dessus. Deplace les declarations externes de
  172.     overflow et hiremainder de genport.h a gencom.h.
  173. 98) [N] Donne a GP l'acces au polynome caracteristique calcule par la comatrice
  174.     et interverti avec caract. D'ou char() dans GP correspond a caradj0() dans
  175.     alglin2.c, et char1() dans GP correspond a caract() dans alglin2.c.
  176. 99) [M1] alglin2.c: Modifications cosmetiques a caract().
  177. 100) [M1] base.c: hnf() change j=def en j=def-1, puis a la fin (apres le if(
  178.     signe(p1))) mettre else def++.
  179. 101) [N] alglin2.c: ecrit un nouveau kerint() utilisant HNF. renomme l'ancien
  180.     kerint1().
  181. 102) [B3] bibli1.c: lllgram() et lllgram1(), la formule donnant mu_{i,k-1}
  182.     etait completement fausse! Corrige, et change la constante de 9/10 a 
  183.     99/100.
  184. 103) [B1] mp.s: negs() changer vers la fin tstl d1 en negl d1 (sinon identique
  185.     a stoi!). Ajoute #define negs(s) (stoi(-s)) dans genport.h. Egalement,
  186.     remplace le calcul d'un zero par _gzero, et dans abss enlever le link.
  187. 104) [M1] gen2.c: ismonome() remplace gcmp0() par isexactzero().
  188. 105) [M0] gen3.c: supprime conpol(); gencom.h ajoute une macro pour gdiventz().
  189. 106) [B2] gen1.c: gdiv() s/10, modifie pour que le resultat soit un polynome
  190.     quand s=0 exactement, gmul() et gen3.c: gmulsg() s*13,14 aussi.
  191. 107) [M3,N] anal.c (et erreurs.h, messages.c): modifie le case 200 de 
  192.     identifier() et skipidentifier() pour accepter les syntaxes m[j,] et m[,k]
  193.     ou m est une matrice. Ces objets peuvent etre utilises dans une expression,
  194.     et a gauche d'un symbole d'affectation (si m est une variable).
  195. 108) [N] Installe dans gp shift() (gshift() dans pari) et shiftmul() (gmul2n()
  196.     dans pari).
  197. 109) [N] es.c: Nouveau format matbrute(), nouvelle commande de GP \m,
  198.     modification de la signification de \p et \b.
  199. 110) [M1] gen3.c: gsubst() permis a nouveau une substitution dans un polymod.
  200.     et de facon similaire dans geval().
  201. 111) [M1] alglin2.c: caradj0() autorise polynome caracteristique de tout
  202.     scalaire.
  203. 112) [B1] polarit2.c: verifie le type dans quadpoly().
  204. 113) [M2] alglin2.c: trace() change completement l'algorithme pour le type 9:
  205.     utiliser les formules de Newton.
  206. 114) [B1] bibli1.c: verifie le type dans ggrando().
  207. 115) [M1] trans*.c: autorise les fonctions transcendantes de type 9.
  208. 116) [M1] polarit1.c: split() et split9() remplace gvar(*t) par varn(*t).
  209.     polarit2.c: discsr() type 10 remplace gvar(x) par varn(x).
  210. 117) [M3] gen*.c: nombreuses modifications pour un traitement un peu plus
  211.     correct du type 9 (suite des modifs liees a la modif 124 sur 1.34).
  212.     En particulier nouvelle fonction gvar2() et macro gvar9.
  213. 118) [M1] accepte le type 9 dans ground() et grndtoi().
  214. 119) [B3] polarit1.c: decpol() ajouter (i1<=k) avant (i==pos[i1]).
  215. 120) [B1] polarit1.c: gredsp() dans les 2 cas p1=0, faire un cgiv(p1) avant
  216.     l1=(long)(x+3).
  217. 121) [M2] polarit1.c: gred() tx==13 ou 14 calcule le contenu pour essayer
  218.     de mieux simplifier. En consequence dans d'autres programmes (gen*.c
  219.     en particulier), de tres nombreuses modifs aux case 13, case 14.
  220. 122) [B1] polarit2.c: remplacer quelques polgcd par ggcd.
  221. 123) [B1] polarit2.c: ggcd(), type 13,14 remplacer if(ty>=17) par if(ty>=15).
  222. 124) [B2] polarit1.c: poldivres() if(tx<10) *pr=gcopy(x) et pas gcopy(y).
  223. 125) [M1] gen3.c: gmulsg() et gdivgs() case 10: mettre ly=lgef(y) et 
  224.     lx=lgef(x).
  225. 126) [M1] anal.c: constante() remplace stoi(10) (dans l'exposant) par une
  226.     affectation dans un reel.
  227. 127) [B1] polarit2.c: ggcd() case 3, case 4: commencer par p1=mppgcd(x[1],y[2])
  228.     et non pas x[2].
  229. 128) [M1] polarit2.c: ggcd() autorise le pgcd case 9 case 13,14.
  230. 129) [M1] polarit2.c: ggcd() traite correctement le cas de variables 
  231.     differentes; modifie le resultat du pgcd avec une serie, et autorise les
  232.     pgcd generaux avec series.
  233. 130) [B1] gen2.c: normalizepol() changer le if(signe(x)) en if(lgef(x)>2).
  234. 131) [B1] bibli1.c: changevar() traite correctement les case 9 et 13,14.
  235. 132) [M1] polarit*.c, gencom.h: plusieurs modifs pour remplacer lgef() par
  236.     qqchose de plus correct (cas des polynomes scalaires). En particulier
  237.     macros isscalar(), isnonscalar() et leadingterm().
  238. 133) [M1] gen2.c: normalizepol() modifie et met le signe dans tous les cas.
  239.     gen1.c: enlever un setsigne inutile avant normalizepol.
  240. 134) [M2] gp.c: (modification de 109) modification de la signification de \p,
  241.     \b et \m, et nouvelle commande \a.
  242. 135) [N] arith2.c: ecrit rhorealnod() et redrealnod(), et ajoute des verifs
  243.     de type dans rhoreal et redreal. Change le nom qfred1 en redcomp, et
  244.     ajoute ces fonctions dans pari.menu.
  245. 136) [B1] anal.c: identifier() oublie de mettre une verification type et
  246.     longueur dans une affectation m[,c]= (suite de 107).
  247. 137) [M1] alglin2.c: gnorm() case 10 a 14, prendre la partie reelle avant
  248.     de donner le resultat.
  249. 138) [M1] trans1.c: gsqrt() autorise le type 9.
  250. 139) [N] gen3.c: installe simplify().
  251.  
  252.  
  253. --------------------------- Version 1.35.07 ------------------------------
  254.  
  255. (la version 1.35.06 n'a existe que de facon ephemere dans 1 seul site)
  256.  
  257. 140) [M3,B1] gen3.c: precision() remplacer le if(tx==2)... par
  258.   if (tx==2) return max(lg(x),2-(expo(x)>>5));
  259. 141) [B3] trans3.c: gpolylog() mettre au debut av=avma et enleve dans les cases
  260.   individuels.
  261. 142) [B2] elliptic.c: initell() et initell2() remplacer q=ginv(gadd(w,gsqrt(..
  262.    par
  263.       if(gsigne(greal(w))>0) q=ginv(gadd(w,gsqrt(gaddgs(gmul(w,w),-1),prec)));
  264.       else q=gsub(w,gsqrt(gaddgs(gmul(w,w),-1),prec));
  265.       pitemp=mppi(prec);...
  266. 143) [B1] elliptic.c: initell(), initell2() et zell() remplacer 
  267.    if(signe(p2)>0) par if(gsigne(p2)>0).
  268. 144) [N] bibli1.c: Ecrit et installe lllgramint() et lllint().
  269. 145) [B1] gen3.c: gceil() case 4,5: remplacer signe par gsigne.
  270. 146) [B3] gen2.c: gpuigs() dans ismonome(x) avant p1=cgetg(dd,10) mettre
  271.    av=avma; dans if(n<0) remplacer av=avma par tetpil=avma.
  272. 147) [B2] polarit2.c: content() remplacer tetpil=avma;p1=ggcd(p1,x[i])
  273.    par 
  274.           txi=typ(x[i]);
  275.           if((txi==2)||((txi>=6)&&(txi<=9))) {avma=l;return gun;}
  276.           else {tetpil=avma;p1=ggcd(p1,x[i]);}
  277.    rajouter les memes deux premieres lignes dans le else
  278.    et declarer txi.
  279. 148) [B1] polarit1.c: gred() dans tx==13 ou 14, remplacer if(gcmp0(x1))...
  280.    par
  281.     x1=(gcmp0(x1))?(GEN)x[1]:gdiv(x[1],x1);
  282.     x2=gdiv(x[2],x2);y=poldivres(x1,x2,&p1);
  283. 149) [B1] polarit2.c: content() case 11: mettre a la place
  284.     case 11: if((!signe(x))&&((tx==11)||(lx==2))) return gzero;
  285. 150) [M2,N] arith2.c: Modifie compose(), compreal(), comprealraw(), sqcomp(),
  286.     sqcompreal(), sqcomprealraw() pour calculer correctement avec des formes
  287.     non primitives (et installation de comprealraw(), sqcomprealraw() et
  288.     powrealraw()).
  289. 151) [M1] anal.c: remplacement de match() par une macro et matcherr()
  290. 152) [M2] anal.c: Au retour d'une fonction, faire systematique ment UNE copie
  291.     du resultat.
  292. 153) [M1] elliptic.c: le code commun a initell() et initell2() est factorise.
  293. 154) [M2] messages.c remplace par errmessages.c et helpmessages.c
  294. 155) [M1] tous les 0x77f+i remplaces par 0x77f +i pour satisfaire un 
  295.     compilateur paranoiaque.
  296. 156) [B2] polarit1.c: gres() remplacer   if(tx<10) return gcopy(y);
  297.     par if(tx<10) return gcopy(x);
  298. 157) [B2] arith2.c: kerint1(), av n'etait pas initialise.
  299. 158) [B1] gen2.c: lexcmp() lx etait dans certains cas utilise avant
  300.     initialisation
  301. 159) [M1] supprime une quinzaine de variables locales inutiles.
  302. 160) [B1] gen2.c: ggval() case 3, initialisation de p1=cgeti(lgef(x[1])) et
  303.     p2=cgeti(lgef(x[2])) etait necessaire.
  304. 161) [M2] polarit2.c: factor() type 10, modifie le code pour accepter des 
  305.     polynomes a coefficients rationnels et pas seulement entiers ou modulo.
  306. 162) [M1] errmessages.c et erreurs.h: Enleve recer2 et modifie le message de
  307.     recer1.
  308. 163) [M1] bibli1.c: Change setprecision() et setserieslength() pour retourner
  309.     ce qu'il faut.
  310. 164) [N] polarit2.c: ecrit polfnf() (factornf() dans gp).
  311. 165) [M1] Mis a jour le manuel, pari.menu et testin.
  312. 166) [B1] gen2.c: gcmp_1() case 9: changer gcmp en !gegal
  313. 167) [N] polarit2.c: Installe nfiso() (isisom() dans gp) nfincl() (isincl()
  314.     dans gp), et rootsof1().
  315. 168) [B1] trans3.c: polylog{p,d,dold}(2m+1,1) donnait 0.
  316.  
  317.  
  318. ----------------------------- Version 1.36beta3 ---------------------
  319.  
  320. 169) [B1] polarit2.c: newtonpoly() remplacer VERYBIGINT par LARGERINT,
  321.     defini dans gencom.h.
  322. 170) [B3] bibli1.c: lindep2() remplacer lll(p4,(prec<<1)-2) par lllint(p4).
  323. 171) [B2] bibli1.c: lllgramint() dans la double boucle initiale, ajouter
  324.     coeff(lam,j,i)=zero, commencer a i=1 au lieu de i=2, et enlever 
  325.     B[2]=coeff(x,1,1) qui precede.
  326. 172) [B1] gen3.c: ginv() corriger pour que le resultat soit une forme reduite
  327.     dans le cas 15 et 16.
  328. 173) [N] arith2.c: ecrit et installe (enfin!) nucomp(), nudupl() et nupow().
  329.     (apres essais, ils pourront remplacer la composition ordinaire).
  330.     Au passage, quelques modifications esthetiques.
  331. 174) [M1] alglin2.c: dans kerint() remplacer l'appel a lll par un appel a
  332.     lllint.
  333. 175) [M1] polarit2.c: factmod() tester si p<2^31.
  334. 176) [B1] bibli1.c: tous les lllgram* quand n<=1 ne pas retourner gcopy(x)
  335.     mais idmat(n).
  336. 177) [N] alglin2.c: ecrit et installe kerint2() qui devrait etre meilleur que
  337.     kerint.
  338. 178) [N] alglin2.c et bibli1.c: remplace kerint() par une nouvelle version,
  339.     et ecrit et installe lllkerim() et lllgramkerim(). Le programme kerint()
  340.     est habituellement plus rapide que kerint1() et kerint2().
  341.  
  342. ------------------------ Version 1.36 ---------------------------------------
  343.